# coding:UTF-8
class Master(object):
    def __init__(self):
        self.tranfomer = '【七十二变心法绝学】'

    def make_kongfu(self):
        print(f'运用{self.tranfomer}习得这项技能')

class Anmaster(object):
    def __init__(self):
        self.tranfomer = '【长生不老，秘密在自由基中】'

    def make_kongfu(self):
        print(f'运用{self.tranfomer}习得这项技能')

class Perntice(object):
    def __init__(self):
        self.tranfomer = '【独创能力：火眼金睛】'
        # 定义私有属性
        self.__money = 200000000
    # 定义私有方法
    def __info_print(self):
        print(self.tranfomer)
        print(self.__money)

    def make_kongfu(self):
        # 如果是先调用了父类的属性和方法，父类属性就会覆盖子类属性，故在调用属性前，先调用自己子类的初始化
        self.__init__()
        print(f'运用{self.tranfomer}习得这项技能')

        # 调用父类方法，但是为了保证调用到的也是父类的属性，必须在调用方法之前调用父类的初始化
    def make_master_kongfu(self):
        Master.__init__(self)  # 调用第一个师傅的属性
        Master.make_kongfu(self)  # 调用第一个师傅的方法

    def make_anmaster_kongfu(self):
        Anmaster.__init__(self)  # 调用另一个师傅的属性
        Anmaster.make_kongfu(self)  # 调用另一个师傅的方法

class Tusun(Perntice):
    pass

if __name__ == '__main__':
    learn = Perntice()
    # 对象不能访问私有属性和方法
    print(learn.__money)
    learn.__info_print()

    zhangsan = Tusun()